home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD012a.dsk / RECIPE FILE 1.3.bas < prev    next >
BASIC Source File  |  2003-06-12  |  19KB  |  374 lines

  1. 0  TEXT : HOME : INVERSE : LIST 61001 -: NORMAL : VTAB 1: HTAB 5
  2. 1  PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%": FOR X = 2 TO 23: PRINT "    %%%%%%%";: HTAB 33: PRINT "%%%%%%%": NEXT : HTAB 5: PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";
  3. 10  VTAB 1: PRINT  CHR$(13) CHR$(4)"NOMONCIO"
  4. 20  REM SUB-STRING SEARCH FNCTN
  5. 30  REM BY LEE REYNOLDS,
  6. 40  REM 1/81 ISSUE OF CALL -APPLE
  7. 50  REM ***********************
  8. 60  REM **                   **
  9. 70  REM **  RECIPE FILE 1.3  **
  10. 80  REM **                   **
  11. 90  REM ***********************
  12. 100  REM 
  13. 110  GOTO 1600: REM INIT & MENU
  14. 120  REM CENTER A$ SUBROUTINE
  15. 130  HTAB 20 - LEN(A$)/2 +  NOT INPT: PRINT A$: RETURN 
  16. 140  REM INPUT C/R TO CONTINUE
  17. 150  POKE CB,0: REM CLR KEYBOARD
  18. 160  NORMAL : PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO CONTINUE ";: FLASH : PRINT U$;: NORMAL 
  19. 170  WAIT KB,128: IF  PEEK(KB) < >141  THEN 170
  20. 180  POKE CB,0: VTAB  PEEK(VC) +1: HTAB 1: PRINT  SPC( 40): RETURN 
  21. 190  REM PRINT "READING" MESSAGE
  22. 200  VTAB 12: HTAB 16: PRINT "[READING]"
  23. 210  RETURN 
  24. 220  REM <CTRL-J><CTRL-J>::: INPUT ROUTINE :::<CTRL-J><CTRL-J>
  25. 230  REM MARGINS:A=LEFT,B=RIGHT,C=TOP,D=BOTTOM
  26. 240  INVERSE : FOR X = C TO D: VTAB X: HTAB A: PRINT  SPC( B -1): PRINT : NEXT : REM DRAW  "RECIPE CARD" 
  27. 250  POKE LFT,A -1: POKE TP,C -1: POKE BM,D: POKE WTH,B: REM SET WINDOW
  28. 260 A$(0) = "": REM CLEAR FIRST STRING
  29. 270  VTAB C: PRINT : VTAB C: HTAB 1: REM POSITION CURSOR
  30. 280 STRING = 0: POKE CB,STRING
  31. 290  IF  POS(X) < >B -1  THEN 320
  32. 300  IF  PEEK(VC) = D -1  THEN  CALL UP: VTAB  PEEK(VC): NORMAL : PRINT S$;: INVERSE : PRINT  SPC( B -1);: HTAB 1: GOTO 320
  33. 310  VTAB  PEEK(VC) +2: HTAB 1
  34. 320  FLASH : PRINT U$;: INVERSE : WAIT KB,128:A$ =  CHR$( PEEK(KB)): IF  ASC(A$) <160  OR  ASC(A$) >222  OR  ASC(A$) = 162  THEN 370
  35. 330 A$(STRING) = A$(STRING) +A$: IF  LEN(A$(STRING)) = 217  THEN STRING = STRING +1:A$(STRING) = ""
  36. 340  IF STRING >9  THEN  CALL BP: CALL BP: CALL BP: CALL BP: GOTO 480
  37. 350  HTAB  POS(X): PRINT A$;
  38. 360  POKE CB,0: GOTO 290
  39. 370  REM SPECIAL CHARACTER
  40. 380  IF A$ =  CHR$(134)  THEN 480
  41. 390  IF A$ =  CHR$(155)  THEN  NORMAL : POKE CB,0: POP : TEXT : HOME : GOTO 1840
  42. 400  IF A$ =  CHR$(136)  THEN 420
  43. 410  PRINT H$;: CALL BP: GOTO 360
  44. 420  IF  LEN(A$(STRING)) >1  THEN A$(STRING) =  LEFT$(A$(STRING), LEN(A$(STRING)) -1): GOTO 450
  45. 430  IF   NOT  LEN(A$(STRING))  THEN 410
  46. 440 A$(STRING) = ""
  47. 450  PRINT A$S$;
  48. 460  IF  POS(X) = 1  AND  PEEK(VC) >C -1  THEN  VTAB  PEEK(VC): HTAB B +1
  49. 470  GOTO 350
  50. 480  POKE CB,0: CALL BP: TEXT : HOME : NORMAL : RETURN 
  51. 490  REM <CTRL-J><CTRL-J><CTRL-J>::: ENTER RECIPES :::<CTRL-J><CTRL-J>
  52. 500  HOME : INVERSE : VTAB 3:A$ = ": FILE NEW RECIPES :": GOSUB 120: NORMAL 
  53. 510  VTAB 6: FOR X = 0 TO 4: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT : VTAB 6: FOR X = 5 TO 9: HTAB 23: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT 
  54. 520  FOR X = 5 TO 11  STEP 6: VTAB X: PRINT DASH$: NEXT 
  55. 530  PRINT 
  56. 540  PRINT "ENTER THE LETTER OF THE": PRINT "APPROPRIATE CATEGORY <A-J>:"U$;: HTAB 28: GET CG$: PRINT CG$: IF CG$ = ""  THEN  HOME : GOTO 1840
  57. 550 CG =  ASC(CG$) -65: IF CG <0  OR CG >9  THEN  HOME : GOTO 1840
  58. 560  PRINT : PRINT "NAME OF RECIPE ";: FOR X = 1 TO 20: PRINT U$;: NEXT : HTAB 15: INPUT ":";NM$
  59. 570  IF  LEN(NM$) >20  THEN NM$ =  LEFT$(NM$,20)
  60. 580  IF   NOT  LEN(NM$)  THEN  CALL BP: GOTO 500
  61. 590  VTAB 19: PRINT "NAME:";: FLASH : PRINT NM$: NORMAL : PRINT : PRINT "CATEGORY:";: FLASH : PRINT CT$(CG): NORMAL 
  62. 600  PRINT : PRINT "IS THE ABOVE INFO CORRECT <Y/N>?"U$;: HTAB 33: GET YN$: PRINT YN$: IF YN$ < >"N"  THEN 620
  63. 610  VTAB 14: CALL CT: GOTO 540
  64. 620  REM INPUT THE RECIPE
  65. 630 INPT = 1: REM FLAG FOR        CENTERING SUBR
  66. 640  HOME :A$ = NM$ +" (" +CT$(CG) +")": GOSUB 120
  67. 650  PRINT :A$ = ".....TYPE THE RECIPE BELOW.....": GOSUB 120
  68. 660 INPT = 0
  69. 670  VTAB 5: HTAB 4: PRINT  LEFT$(DASH$,31): VTAB 22: HTAB 4: PRINT  LEFT$(DASH$,31)
  70. 680  VTAB 24: HTAB 2: PRINT "<HIT ";: INVERSE : PRINT "CTRL-F";: NORMAL : PRINT " WHEN DONE, ";: INVERSE : PRINT "ESC";: NORMAL : PRINT " TO EXIT>";
  71. 690 A = 4:B = 32:C = 6:D = 21: GOSUB 220: REM SET WINDOW MARGIN  PARAMETERS;GO TO "INPUT"   SUBROUTINE
  72. 700 LNGTH = STRING: REM NUMBER OF"CHUNKS" OF TEXT (EACH CHUNK=217 CHARS,7 LINES OF 31)
  73. 710  VTAB 9
  74. 720  PRINT "INSERT DISK CONTAINING": PRINT "RECIPE FILES...": PRINT : GOSUB 140
  75. 730  PRINT 
  76. 740  PRINT D$"OPENRF."CT$(CG)",L2000"
  77. 750  PRINT D$"READRF."CT$(CG)",R0"
  78. 760  INPUT REC
  79. 770  PRINT D$"WRITERF."CT$(CG)",R"REC +1
  80. 780  PRINT NM$: PRINT LNGTH
  81. 790  FOR X = 0 TO LNGTH
  82. 800  PRINT Q$A$(X)Q$
  83. 810  NEXT 
  84. 820  PRINT D$"WRITERF."CT$(CG)",R0"
  85. 830  PRINT REC +1
  86. 840  PRINT D$"CLOSE"
  87. 850 CT(CG) = CT(CG) +1:TTL = TTL +1
  88. 860  REM PREVIOUS LINES OPEN THE FILE, ADD THE NEW DATA, REC 0 CONTAINS NUMBER OF RECIPESIN THIS FILE
  89. 870  PRINT : PRINT "THE RECIPE FOR "NM$" HAS": PRINT "BEEN ADDED TO THE "Q$CT$(CG)Q$" FILE.": PRINT : GOSUB 140: PRINT : HOME 
  90. 880  GOTO 1840
  91. 890  REM <CTRL-J><CTRL-J><CTRL-J>::: READ RECIPES :::<CTRL-J><CTRL-J>
  92. 900  HOME : INVERSE : VTAB 3:A$ = ": READ RECIPES :": GOSUB 120: NORMAL :X1 = 0
  93. 910  PRINT : PRINT "LTR";: HTAB 5: PRINT "CATEGORY";: HTAB 36: PRINT "RECS": HTAB 5: PRINT  LEFT$(DASH$,35)
  94. 920  FOR X = 0 TO 9:CG$ = CT$(X):REC = CT(X)
  95. 930  PRINT "< > . . . . . . . . . . . . . . . . . .";: HTAB 2: PRINT  CHR$(X +65);: HTAB 5: PRINT CG$;: HTAB 39 -(REC >9): PRINT REC
  96. 940  NEXT 
  97. 950  HTAB 5: PRINT  LEFT$(DASH$,35)
  98. 960  HTAB 31: PRINT "TOTAL:";: HTAB 39 -(TTL >9) -(TTL >99): PRINT TTL: PRINT 
  99. 970  HTAB 3: PRINT "PRESS THE LETTER OF": HTAB 3: PRINT "YOUR CHOICE <A-J>:"U$;: HTAB 21: GET CG$: HOME : IF CG$ = ""  THEN 1840
  100. 980 CG =  ASC(CG$) -65: IF CG <0  OR CG >9  THEN 1840
  101. 990  PRINT : GOSUB 190
  102. 1000  PRINT D$"OPENRF."CT$(CG)",L2000"
  103. 1010  PRINT D$"READRF."CT$(CG)",R0"
  104. 1020  INPUT REC
  105. 1030  IF   NOT REC  THEN  PRINT D$"CLOSE": GOTO 1430
  106. 1040  FOR X = 1 TO REC
  107. 1050  PRINT D$"READRF."CT$(CG)",R"X
  108. 1060  INPUT NM$(X)
  109. 1070  NEXT 
  110. 1080  PRINT D$"CLOSE"
  111. 1090  HOME : INVERSE :A$ = ":" +S$ +Q$ +CT$(CG) +Q$ +S$ +"FILE :": GOSUB 120
  112. 1100  NORMAL : PRINT "NMBR";: HTAB 34: PRINT "RECIPE": PRINT  LEFT$(DASH$,39)
  113. 1110  FOR X = 1 TO REC: PRINT ". . . . . . . . . . . . . . . . . . .";: HTAB 1: PRINT "<"X">";: HTAB 40 - LEN(NM$(X)): PRINT NM$(X)
  114. 1120  IF  PEEK(37) = 21  AND X < >REC  THEN 1140: REM CHECK FOR FULL PAGE OF TEXT
  115. 1130  NEXT : GOTO 1170
  116. 1140  PRINT  LEFT$(DASH$,39): PRINT "ENTER # OR ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " FOR MORE: ";A$:N =  VAL(A$)
  117. 1150  IF A$ = ""  THEN  VTAB 3: PRINT : GOTO 1130: REM RETURN FOR MORE
  118. 1160  GOTO 1190
  119. 1170  CALL CT: PRINT  LEFT$(DASH$,39): PRINT "ENTER # OR ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " FOR MENU: ";A$:N =  VAL(A$)
  120. 1180  IF A$ = ""  THEN  HOME : GOTO 1840: REM "RTN" SO BACK TO  MENU
  121. 1190  IF N >REC  THEN 1170
  122. 1200  HOME : GOSUB 190
  123. 1210  PRINT D$"OPENRF."CT$(CG)",L2000"
  124. 1220  PRINT D$"READRF."CT$(CG)",R"N
  125. 1230  INPUT NM$,LNGTH
  126. 1240  IF DL  THEN  PRINT D$"CLOSE": RETURN 
  127. 1250  FOR X = 0 TO LNGTH
  128. 1260  INPUT A$(X)
  129. 1270  NEXT 
  130. 1280  PRINT D$"CLOSE"
  131. 1290  HOME : VTAB 10: PRINT "OUTPUT TO <S>CREEN OR <P>RINTER? "U$;: HTAB 34: GET A$: PRINT A$: IF A$ < >"S"  AND A$ < >"P"  THEN 1290
  132. 1300  IF A$ = "S"  THEN 1460
  133. 1310  VTAB 13: PRINT "ENTER PRINTER'S SLOT # (DEFAULT=1)": PRINT : INPUT "OR BINARY DRIVER CALL: ";A$:PR =  VAL(A$)
  134. 1320  IF A$ = ""  THEN PR = 1: REM DEFAULT TO SLOT 1
  135. 1330  IF PR <1  OR PR >7  THEN  CALL PR: GOTO 1350
  136. 1340  PRINT D$"PR#"PR: REM ACTIVATE PRINTER
  137. 1350  PRINT 
  138. 1360  PRINT  CHR$(9)"80N": PRINT "RECIPE FOR "NM$
  139. 1370  PRINT DASH$
  140. 1380  FOR X = 0 TO LNGTH:A$ = A$(X): FOR X1 = 0 TO 6: PRINT  MID$ (A$,X1 *31 +1,31): NEXT : NEXT 
  141. 1390  PRINT DASH$
  142. 1400  PRINT : PRINT 
  143. 1410  PRINT D$"PR#0": REM RETURN TO SCREEN
  144. 1420  GOSUB 140: PRINT : HOME : GOTO 1840
  145. 1430  REM NO RECIPES IN CATEGORY
  146. 1440  FOR X = 1 TO 3: CALL BP: NEXT : HOME 
  147. 1450  VTAB 11: PRINT "THERE ARE NO RECIPES CURRENTLY IN THE": PRINT Q$CT$(CG)Q$" FILE.": PRINT : GOSUB 140: HOME : GOTO 1840
  148. 1460  REM <CTRL-J><CTRL-J><CTRL-J>::: SCREEN OUTPUT :::<CTRL-J><CTRL-J>
  149. 1470  HOME : PRINT "RECIPE FOR ";: INVERSE : PRINT NM$: NORMAL : POKE TP,2: PRINT 
  150. 1480  FOR X = 0 TO LNGTH:A$ = A$(X): FOR X1 = 0 TO 6: HTAB 4: PRINT  MID$ (A$,X1 *31 +1,31)
  151. 1490  IF  PEEK(37) = 22  THEN  PRINT : GOSUB 140: HOME 
  152. 1500  NEXT : NEXT 
  153. 1510  GOSUB 140: HOME : VTAB 11
  154. 1520  PRINT "WOULD YOU NOW LIKE TO PRINT OUT THIS    RECIPE <Y/N>? "U$;: HTAB 15: GET A$: PRINT A$: IF A$ < >"Y"  AND A$ < >"N"  THEN  VTAB 11: GOTO 1520
  155. 1530  TEXT : HOME : IF A$ = "Y"  THEN 1310
  156. 1540  GOTO 1840
  157. 1550  REM <CTRL-J><CTRL-J><CTRL-J>::: ERROR TRAP :::<CTRL-J><CTRL-J>
  158. 1560  TEXT : HOME : NORMAL : PRINT  CHR$(13)D$"CLOSE": PRINT D$"PR#0"
  159. 1570 ER =  PEEK(222): IF ER = 255  THEN 2710
  160. 1580  PRINT "ERROR #"ER" HAS OCCURRED IN LINE #" PEEK(218) + PEEK(219) *256
  161. 1590  FOR X = 1 TO 5: CALL BP: NEXT : PRINT : END 
  162. 1600  REM <CTRL-J><CTRL-J><CTRL-J>::: INITIALIZATION :::<CTRL-J><CTRL-J>
  163. 1610  SPEED= 255
  164. 1620 D$ =  CHR$(4): REM CTRL-D
  165. 1630 Q$ =  CHR$(34): REM QUOTE
  166. 1640 S$ =  CHR$(32): REM SPACE
  167. 1650 U$ =  CHR$(95): REM SCORE
  168. 1660 H$ =  CHR$(8): REM BCKSPC
  169. 1670 LFT = 32: REM LEFT MARGIN
  170. 1680 WTH = 33: REM SCREEN WIDTH
  171. 1690 TP = 34: REM TOP MARGIN
  172. 1700 BM = 35: REM BOTTOM MARGIN
  173. 1710 CT =  -958: REM CLR WNDW
  174. 1720 UP =  -912: REM SCROLL UP
  175. 1730 KB =  -16384: REM KYBOARD
  176. 1740 CB =  -16368: REM CLR KBD
  177. 1750 BP =  -198: REM CALL BEEP
  178. 1760 VC = 37: REM  VERT.CURSOR
  179. 1770  DIM NM$(150)
  180. 1780 DASH$ = "----------------------------------------"
  181. 1790  NOTRACE 
  182. 1800  FOR X = 0 TO 9: READ CT$(X): NEXT : REM GET CATEGORY NAMES
  183. 1810  IF  PEEK(768) < >32  OR  PEEK(769) < >227  THEN  GOSUB 3330
  184. 1820  GOSUB 2010
  185. 1830  REM <CTRL-J><CTRL-J><CTRL-J>  ::: MENU :::<CTRL-J><CTRL-J>
  186. 1840  INVERSE : VTAB 3: HTAB 3: PRINT  SPC( 36): FOR X = 4 TO 21: VTAB X: HTAB 2: PRINT  SPC( 38): NEXT : VTAB 22: HTAB 3: PRINT  SPC( 36)
  187. 1850 DL = 0: VTAB 4: PRINT 
  188. 1860 A$ = "*** RECIPE FILE 1.3 ***": GOSUB 120
  189. 1870  PRINT :A$ = ".........BY JIM GANZ.........": GOSUB 120
  190. 1880  PRINT :A$ = "A PROGRAM WHICH ALLOWS YOU TO": GOSUB 120
  191. 1890 A$ = "ORGANIZE YOUR RECIPES ON DISK": GOSUB 120
  192. 1900 A$ = ".............................": GOSUB 120: PRINT 
  193. 1910  HTAB 6: PRINT "<I>NSERT A RECIPE": HTAB 6: PRINT "<R>EAD RECIPES  ("TTL" ON FILE)": HTAB 6: PRINT "<S>EARCH FOR RECIPES": HTAB 6: PRINT "<D>ELETE RECIPES"
  194. 1920  HTAB 6: PRINT "<H>OW TO USE RF 1.3": HTAB 6: PRINT "<Q>UIT": PRINT 
  195. 1930  HTAB 6: PRINT "SELECT:"U$;: HTAB 13: GET A$: IF   NOT TTL  AND (A$ = "R"  OR A$ = "S"  OR A$ = "D")  THEN A$ = "X"
  196. 1940  IF A$ < >"I"  AND A$ < >"R"  AND A$ < >"S"  AND A$ < >"D"  AND A$ < >"H"  AND A$ < >"Q"  THEN  CALL BP: GOTO 1930
  197. 1950  PRINT A$;: NORMAL : PRINT 
  198. 1960  ON A$ = "I" GOTO 490: ON A$ = "R" GOTO 890: ON A$ = "S" GOTO 2740: ON A$ = "D" GOTO 3040: ON A$ = "H" GOTO 2160: GOTO 2710
  199. 1970  REM CATEGORY NAME DATA
  200. 1980  DATA BEVERAGES,BREADS,DESSERTS,FISH,HORS D'OEUVRES,MEAT,POULTRY,SOUPS,VEGETABLES,OTHER
  201. 1990  REM CHANGE CATEGORY NAMES  AS NEEDED
  202. 2000  REM CATEGORY NAMES MAY NOT EXCEED 16 CHARS.
  203. 2010  REM <CTRL-J><CTRL-J><CTRL-J>::: INIT FILES :::<CTRL-J><CTRL-J>
  204. 2020  POKE 33,3: ONERR  GOTO 2040
  205. 2030  PRINT D$"VERIFYRF."CT$(0): POKE 216,0: GOTO 2120
  206. 2040  IF  PEEK(222) < >6  THEN  TEXT : HOME : STOP : REM AN ERROR DID OCCUR, BUT IT WASN'T A "FILE NOT FOUND" ERROR SO STOP
  207. 2050  FOR X = 0 TO 9:CT$ = CT$(X)
  208. 2060  PRINT D$"OPENRF."CT$",L2000"
  209. 2070  PRINT D$"WRITERF."CT$",R0"
  210. 2080  PRINT 0:CT(X) = 0
  211. 2090  PRINT D$"CLOSE"
  212. 2100  NEXT : POKE 216,0: RUN 1600
  213. 2110  REM THE PREVIOUS ROUTINE   CREATES ALL 10 RECIPE FILES AND SPECIFIES IN EACH ONE   THAT THERE ARE 0 RECORDS
  214. 2120  FOR X = 0 TO 9:CG$ = CT$(X): PRINT D$"OPENRF."CG$",L2000": PRINT D$"READRF."CG$",R0": INPUT CT(X): PRINT D$"CLOSE":TTL = TTL +CT(X): NEXT 
  215. 2130  TEXT : HOME : ONERR  GOTO 1550
  216. 2140  RETURN 
  217. 2150  REM <CTRL-J><CTRL-J><CTRL-J>::: INSTRUCTIONS :::<CTRL-J><CTRL-J>
  218. 2160  TEXT : HOME : PRINT "::::::::";: INVERSE : PRINT "RECIPE FILE INSTRUCTIONS";: NORMAL : PRINT "::::::::"
  219. 2170  PRINT : POKE TP,3
  220. 2180  PRINT "    THIS PROGRAM WILL STORE YOUR MOST": PRINT 
  221. 2190  PRINT "OFTEN USED RECIPES ON DISK AND ALLOW YOU"
  222. 2200  PRINT "TO OBTAIN A PRINT-OUT OF THEM ON YOUR": PRINT 
  223. 2210  PRINT "PRINTER.  WHEN YOU WANT A PARTICULAR": PRINT 
  224. 2220  PRINT "RECIPE, OR WHEN A FRIEND WANTS A COPY OF"
  225. 2230  PRINT "ONE OF YOUR RECIPES, SIMPLY SELECT THAT": PRINT 
  226. 2240  PRINT "RECIPE FROM THE PROGRAM'S 'MENU' AND IT": PRINT 
  227. 2250  PRINT "WILL BE PRINTED OUT FOR YOU. FOR THOSE  ": PRINT "WITHOUT A PRINTER THERE IS A SCREEN-ONLY": PRINT "OPTION.": PRINT 
  228. 2260  PRINT ":::::::";: GOSUB 140
  229. 2270  PRINT "    BEFORE YOU ACTUALLY BEGIN ENTERING": PRINT 
  230. 2280  PRINT "YOUR RECIPES INTO THIS PROGRAM, IT IS": PRINT 
  231. 2290  PRINT "SUGGESTED THAT YOU SAVE THIS PROGRAM,": PRINT 
  232. 2300  PRINT "CALLED 'RECIPE FILE 1.3,' ON A SEPARATE": PRINT 
  233. 2310  PRINT "DISK.  THE 10 TEXT FILES WHICH ACCOMPANY"
  234. 2320  PRINT "'RECIPE FILE,' WHICH ARE IDENTIFIED BY": PRINT 
  235. 2330  PRINT "THEIR PREFIX 'RF.', SHOULD BE THE ONLY": PRINT 
  236. 2340  PRINT "OTHER FILES ON THE SAME DISK AS THIS": PRINT 
  237. 2350  PRINT "PROGRAM.": PRINT 
  238. 2360  PRINT "    EACH RECIPE IS ENTERED ON A KIND OF": PRINT 
  239. 2370  PRINT ":::::::::";: GOSUB 140
  240. 2380  PRINT "VIDEO RECIPE CARD. PRETEND THAT YOU ARE": PRINT 
  241. 2390  PRINT "TYPING ON A REAL RECIPE CARD AND ENTER": PRINT 
  242. 2400  PRINT "ALL NECESSARY INFORMATION. YOU MAY": PRINT 
  243. 2410  PRINT "JUSTIFY THE TEXT AS YOU WISH, AND WHEN": PRINT 
  244. 2420  PRINT "YOU REACH THE BOTTOM OF THE CARD, IT": PRINT 
  245. 2430  PRINT "WILL SCROLL UPWARD SO YOU CAN CONTINUE.": PRINT 
  246. 2440  PRINT "IT IS NOT NECESSARY TO TYPE THE TITLE OF"
  247. 2450  PRINT "THE RECIPE ON THE CARD, AND YOU SHOULD": PRINT 
  248. 2460  PRINT "KNOW THAT BOTH THE QUOTATION MARK AND": PRINT 
  249. 2470  PRINT "THE FORWARD ARROW (->) ARE INOPERATIVE.": PRINT 
  250. 2480  PRINT "::::::::";: GOSUB 140
  251. 2490  PRINT "PRESS CTRL-F WHEN YOU ARE COMPLETELY": PRINT 
  252. 2500  PRINT "FINISHED TYPING IN THE RECIPE. TO RETURN"
  253. 2510  PRINT "TO THE MAIN MENU WITHOUT SAVING THE": PRINT 
  254. 2520  PRINT "RECIPE, PRESS THE ESCAPE KEY.": PRINT 
  255. 2530  PRINT "    THE DELETE OPTION FROM THE MAIN MENU"
  256. 2540  PRINT "ALLOWS YOU TO DELETE A RECIPE FROM THE": PRINT 
  257. 2550  PRINT "FILE. NOTE THAT ONCE A RECIPE HAS BEEN": PRINT 
  258. 2560  PRINT "DELETED, IT CANNOT BE RESTORED.": PRINT 
  259. 2570  PRINT "    WITH THE SEARCH OPTION YOU CAN ENTER"
  260. 2580  PRINT "AN INGREDIENT (OR OTHER KEYWORD) AND": PRINT 
  261. 2590  PRINT "::::::::";: GOSUB 140: VTAB 23
  262. 2600  PRINT "OBTAIN A LIST OF ALL RECIPES CONTAINING": PRINT 
  263. 2610  PRINT "THAT INGREDIENT IN A GIVEN CATEGORY. FOR"
  264. 2620  PRINT "INSTANCE, YOU CAN FIND OUT HOW MANY OF": PRINT 
  265. 2630  PRINT "YOUR DESSERT RECIPES USE PEANUT BUTTER.": PRINT 
  266. 2640  PRINT "    THAT'S ABOUT IT... THANK YOU ALL FOR"
  267. 2650  PRINT "MAKING THE APPLE COOKBOOK A SUCCESS, AND"
  268. 2660  PRINT "GOOD LUCK WITH RECIPE FILE 1.3.  JG": PRINT 
  269. 2670  GOSUB 140
  270. 2680  TEXT : HOME 
  271. 2690  GOTO 1840: REM RETURN TO   MENU 
  272. 2700  REM END PROGRAM
  273. 2710  TEXT : HOME : TEXT 
  274. 2720  PRINT "THANK YOU FOR USING "Q$"RECIPE FILE 1.3"Q$: PRINT "TODAY - AND ";: FLASH : PRINT "ENJOY";: NORMAL : PRINT "!"
  275. 2730  FOR I = 1 TO 2000: NEXT : PRINT  CHR$(13); CHR$(4);"RUN KICK.IT.OFF"
  276. 2740  REM <CTRL-J><CTRL-J>  ::::: SEARCH :::::<CTRL-J><CTRL-J>
  277. 2750  HOME : PRINT DASH$;: INVERSE : PRINT  SPC( 40): VTAB 2:A$ = "*** RECIPE FILE SEARCH ***": GOSUB 130: NORMAL : PRINT DASH$
  278. 2760  POKE 34,3: PRINT : VTAB 4
  279. 2770  FOR X = 0 TO 4: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT : VTAB 4: FOR X = 5 TO 9: HTAB 23: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT 
  280. 2780  PRINT DASH$
  281. 2790  PRINT : PRINT "SEARCH CATEGORY <A-J>: "U$;: HTAB 24: GET CT$:CS =  ASC(CT$) -65: IF CS <0  OR CS >9  THEN 3030
  282. 2800  PRINT CT$:CT$ = CT$(CS)
  283. 2810  IF   NOT CT(CS)  THEN  CALL BP: PRINT : PRINT "THERE ARE NO RECIPES CURRENTLY FILED IN THAT CATEGORY... PLEASE TRY AGAIN:": GOTO 2790
  284. 2820  PRINT 
  285. 2830  INPUT "ENTER SEARCH INGREDIENT:";SS$
  286. 2840  IF   NOT  LEN(SS$)  THEN 2820
  287. 2850  POKE 34,2: HOME : PRINT DASH$;: PRINT "CATEGORY:";: INVERSE : PRINT CT$;: NORMAL : HTAB 34 - LEN(SS$): PRINT "INGRED:";: INVERSE : PRINT SS$;: NORMAL 
  288. 2860  PRINT "FOUND IN    OF "CT(CS)" RECIPES CHECKED": PRINT DASH$
  289. 2870  POKE 34,6:SF = 0
  290. 2880  PRINT D$"OPENRF."CT$",L2000"
  291. 2890  FOR X = 1 TO CT(CS)
  292. 2900  PRINT D$"READRF."CT$",R"X
  293. 2910  INPUT NM$,LNGTH
  294. 2920  FOR XX = 0 TO LNGTH
  295. 2930  INPUT TXT$(XX)
  296. 2960  & TXT$(XX),SS$
  297. 2970  IF   NOT  PEEK(26)  THEN 3010
  298. 2980  REM STRING FOUND
  299. 2990 SF = SF +1: PRINT SF".";: HTAB 5: PRINT NM$:XX = LNGTH
  300. 3000  IF  PEEK(37) = 22  AND X < >CT(CS)  THEN  PRINT D$"CLOSE": VTAB 24: GOSUB 150: HOME : PRINT  CHR$(13)D$"OPENRF."CT$",L2000"
  301. 3010  NEXT : NEXT : PRINT D$"CLOSE": VTAB 5: HTAB 10: PRINT SF: VTAB 24
  302. 3020  GOSUB 150
  303. 3030  TEXT : HOME : GOTO 1840
  304. 3040  REM <CTRL-J><CTRL-J>  ::::: DELETE :::::<CTRL-J><CTRL-J>
  305. 3050 DL = 1: REM FLAG FOR DELETE
  306. 3060  HOME : INVERSE : VTAB 3:A$ = ": DELETE RECIPES :": GOSUB 120: NORMAL :X1 = 0
  307. 3070  GOSUB 910:DL = 0
  308. 3080  HOME : VTAB 9
  309. 3090  PRINT "ARE YOU SURE YOU WANT TO ";: FLASH : PRINT "DELETE";: NORMAL : PRINT " THE": PRINT 
  310. 3100  PRINT "RECIPE FOR ";: INVERSE : PRINT NM$;: NORMAL : PRINT " FROM"
  311. 3110  PRINT : PRINT "THE FILE <Y/N>? "U$;
  312. 3120  HTAB 17: GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 3120
  313. 3130  PRINT A$: IF A$ = "N"  THEN  HOME : GOTO 1840
  314. 3140  PRINT : PRINT "STAND BY -- NOW DELETING"
  315. 3150  REM 
  316. 3160  REM RECIPE TO DELETE: NM$
  317. 3170  REM RECORD NUMBER: N
  318. 3180  REM CATEGORY: CT$(CG)
  319. 3190  REM # RECS IN CAT: CT(CG)
  320. 3200  REM TOTAL # RECS: TTL
  321. 3210  REM 
  322. 3220  PRINT D$"OPENRF."CT$(CG)",L2000": PRINT D$"READRF."CT$(CG)",R"CT(CG)
  323. 3230  INPUT NO$,LNGTH
  324. 3240  FOR X = 0 TO LNGTH: INPUT TXT$(X): NEXT 
  325. 3250  PRINT D$"WRITERF."CT$(CG)",R"N
  326. 3260  PRINT NO$: PRINT LNGTH
  327. 3270  FOR X = 0 TO LNGTH: PRINT Q$TXT$(X)Q$: NEXT 
  328. 3280 CT(CG) = CT(CG) -1:TTL = TTL -1
  329. 3290  PRINT D$"WRITERF."CT$(CG)",R0"
  330. 3300  PRINT CT(CG)
  331. 3310  PRINT D$"CLOSE"
  332. 3320  HOME : GOTO 1840
  333. 3330  REM <CTRL-J><CTRL-J> :::: POKE SEARCH ::::<CTRL-J><CTRL-J>
  334. 3340  POKE 1013,76: POKE 1014,0: POKE 1015,3: REM JMP $300
  335. 3350  FOR X = 768 TO 879: READ Y: POKE X,Y: NEXT : RETURN 
  336. 3360  DATA 32,227,223,133,6,132,7,160,0,132,26,177,6,133,24,200,177,6,72,200,177,6,133,7,104,133,6,32,190,222,32,227,223,133,8,132,9,160,0,177,8,133,25,200,177,8,72,200,177,8,133,9
  337. 3370  DATA 104,133,8,165,24,240,30,197,25,144,26,165,25,240,22,165,24,56,229,25,133,27,160,0,177,6,209,8,208,8,200,196,25,144,245,230,26,96,230,26,165,27,197,26,144,8,230,6,208,2,230,7,208,224,169,0,133,26,240,233
  338. 9000  REM 
  339. 9010  REM FILES CREATED WITH
  340. 9020  REM   "RECIPE.FILE" &
  341. 9030  REM   "RECIPE FILE 1.2"
  342. 9040  REM ARE COMPATIBLE WITH
  343. 9050  REM   "RECIPE FILE 1.3"
  344. 9060  REM 
  345. 9070  REM PUBLISHED IN
  346. 9080  REM  SOFTDISK MAGAZETTE
  347. 9090  REM   3811 ST. VINCENT
  348. 9100  REM    SHREVEPORT, LA
  349. 9110  REM        71108
  350. 9120  REM 
  351. 9130  REM 1.3 - 8/19/82
  352. 9140  REM 
  353. 65535  REM *********************
  354. 65535  REM *                   *
  355. 65535  REM *  RECIPE FILE 1.3  *
  356. 65535  REM *                   *
  357. 65535  REM *    BY JIM GANZ    *
  358. 65535  REM *   82 SPRING LANE  *
  359. 65535  REM *  WEST HARTFORD,CT *
  360. 65535  REM *       06107       *
  361. 65535  REM *                   *
  362. 65535  REM *ALL RIGHTS RESERVED*
  363. 65535  REM *                   *
  364. 65535  REM * DEDICATION: TO    *
  365. 65535  REM * SALLY GANZ, STILL *
  366. 65535  REM * THE WORLD'S MOST  *
  367. 65535  REM * DISORGANIZED COOK.*
  368. 65535  REM *                   *
  369. 65535  REM *     REQUIRES:     *
  370. 65535  REM *   48K APPLE ][+   *
  371. 65535  REM * ONE DISK DRIVE  & *
  372. 65535  REM * PRINTER (OPTIONAL)*
  373. 65535  REM *                   *
  374. 65535  REM *********************